# !/usr/bin python3
# encoding: utf-8 -*-
# @author : 易亚琪 HG
# @Copyright: 湖南和贵网络科技有限公司

import configparser
import os
from os.path import dirname, abspath


# g根据section和key获取value
def get_config():
    project_path = dirname(dirname(os.path.abspath(__file__)))
    path = os.path.join(project_path, 'config.ini')
    # RawConfigParser是最基础的INI文件读取类，ConfigParser、SafeConfigParser支持对 % (value)s变量的解析。
    # config = configparser.ConfigParser()
    config = configparser.RawConfigParser()
    config.read(path, encoding="utf-8-sig")
    #读取所有的section，返回列表
    section = config.sections()
    value_new = []
    # 循环读取config文件中每个section中的键值对，存储到列表中
    # 存储格式为：
    #[(key1,value1),[(key2,value2),(key3,value3)],[...]]
    for section_node in section:
          # 读取对应section中的键值对
          value = config.items(section_node)
          if len(value_new) == 0:
              value_new = value
          else:
              value_new.append(value)
    list_value = []
    #将从config.ini文件中读取的各个section的键值对的值转换成字典
    for value in value_new:
        # 如果键值对的格式不是list，就直接追加，如果是list，先将list转换为元祖再循环追加到list_value列表中,最后转换成字典
        if type(value) != list:
            list_value.append(value)
        else:
            value_tuples = tuple(value)
            for value_tuple in value_tuples:
                list_value.append(value_tuple)
    list_dict = dict(list_value)
    return list_dict


if __name__ == '__main__':
    print(get_config())
